//package com.mobile.util;
//import org.docx4j.Docx4J;
//import org.docx4j.convert.out.FOSettings;
//import org.docx4j.fonts.IdentityPlusMapper;
//import org.docx4j.fonts.PhysicalFonts;
//import org.docx4j.openpackaging.exceptions.Docx4JException;
//import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.io.File;
//import java.io.FileOutputStream;
//
//public class WordToPdfConverter {
//
//    private static final Logger logger = LoggerFactory.getLogger(WordToPdfConverter.class);
//
//    static {
//        // 关键修复：初始化字体映射和FOP配置
//        PhysicalFonts.setRegex(".*"); // 允许使用所有系统字体
//        System.setProperty("org.apache.fop.configuration", ""); // 修复FOP空配置问题
//    }
//
//    /**
//     * 将Word文档转换为PDF文件
//     * @param wordFile 输入的Word文件（.docx格式）
//     * @return 生成的PDF文件
//     */
//    public static File convertToPdf(File wordFile) {
//        if (!wordFile.exists() || !wordFile.getName().endsWith(".docx")) {
//            throw new IllegalArgumentException("无效的Word文件: " + wordFile.getAbsolutePath());
//        }
//
//        String pdfPath = wordFile.getAbsolutePath().replace(".docx", ".pdf");
//        File pdfFile = new File(pdfPath);
//
//        try (FileOutputStream fos = new FileOutputStream(pdfFile)) {
//            // 1. 加载Word文档
//            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(wordFile);
//
//            // 2. 设置中文字体映射（解决中文乱码）
//            wordMLPackage.setFontMapper(new IdentityPlusMapper());
//
//            // 3. 配置PDF输出
//            FOSettings foSettings = Docx4J.createFOSettings();
//            foSettings.setWmlPackage(wordMLPackage);
//
//            // 4. 执行转换（关键修复：使用兼容模式）
//            Docx4J.toFO(foSettings, fos, Docx4J.FLAG_EXPORT_PREFER_NONXSL);
//
//            logger.info("转换成功: {} → {}", wordFile.getName(), pdfFile.getName());
//            return pdfFile;
//        } catch (Exception e) {
//            logger.error("转换失败", e);
//            throw new RuntimeException("文档转换失败: " + e.getMessage(), e);
//        }
//    }
//
//    // 测试方法
//    public static void main(String[] args) {
//        try {
//            File input = new File("/Users/wbr/uploads/word/4b003031-f9a0-4bbc-b96e-8028a96d74a3.docx");
//            if (!input.exists()) {
//                System.err.println("测试文件不存在: " + input.getAbsolutePath());
//                return;
//            }
//
//            File output = convertToPdf(input);
//            System.out.println("生成PDF: " + output.getAbsolutePath());
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//}